package com.dfiov.cloud.msmtools.service.business;


import com.dfiov.cloud.msmtools.entity.dto.*;
import com.dfiov.cloud.msmtools.entity.vo.msmtools.*;
import com.dfiov.cloud.msmtools.entity.vo.tspReport.AddDataByMonthAndVersionVo;
import com.dfiov.cloud.msmtools.entity.vo.tspReport.ExportDataByMonthAndVersionVo;
import com.dfiov.cloud.msmtools.mapper.entity.msinfofeedback.NewFeedbackRecord;
import com.dfiov.cloud.msmtools.mapper.entity.msinfofeedback.PageResult;
import com.dfiov.cloud.msmtools.mapper.entity.msmtools.*;
import com.dfiov.cloud.msmtools.mapper.entity.msmtools.MsmtoolsColumnsDo;
import com.pateo.qingcloud.framework.common.base.BaseRestResponse;

import javax.servlet.http.HttpServletResponse;
import java.util.List;

public interface AuthService {

    BaseRestResponse<MsmtoolsUserInfoDto> getUserByUserId(int userId);

    List<MsmtoolsUserInfoDto> selectAllMsmtoolsUserInfo(int page,int pagesize);

    List<MsmtoolsMessageDo> selectAllMsmtoolsMessage(int page, int pagesize, String name, String description);

    List<MsmtoolsPowerDo> selectAllMsmtoolsPower();

    int selectAllCountMsmtoolsUserInfo();

    int selectAllCountMsmtoolsMessage();

    MsmtoolsUserInfoDo getUserByAccountAndPswd(String account, String pswd);

    UserTokensDo getUserTokensByUserId(int userId);

    int saveUserTokens(UserTokensDo userTokensDo);

    int saveMsmtoolsUserInfoDo(MsmtoolsUserInfoDo msmtoolsUserInfoDo);

    String adduserinfo(MsmtoolsUserInfoVo msmtoolsUserInfoVo);

    List<MsmtoolsMenuDto> selectMenu(int userId);

    MsmtoolsMenuDto getMenuInfoByMId(String key);

    List<MsmtoolsColumnsDo> getmenulist(String tableName);

    List<MsmtoolsMenuAndChildrenDto> getMenuAllandChildren();

    String addmenu(AddmenuVo addmenuVo);

    String updateMenu(UpdateMenuVo addmenuVo);

    String deleteMenuByMId(UpdateMenuVo addmenuVo);

    String editType(UpdatePowerVo updatePowerVo);

    String addtype(UpdatePowerVo updatePowerVo);

    String searchVehicleData(String vin);

    BaseRestResponse<SearchVehicleDataAllDto> searchVehicleDataAll(String vin);

    BaseRestResponse<PageResult<NewFeedbackRecord>> getFeedBacklog(GetFeedbackVo getFeedbackVo);

    BaseRestResponse<CreditConfigStatusResp> getCreditBusinessVehicle(String vin);

    BaseRestResponse<List<AddDataByMonthDto>> getAddDataByMonth(String startMonth,String endMonth);

    BaseRestResponse<AddDataByMonthAndVersionDto> getAddDataByMonthAndVersion(AddDataByMonthAndVersionVo addDataByMonthAndVersionVo);

    void exportAddDataByMonthAndVersion(ExportDataByMonthAndVersionVo exportDataByMonthAndVersionVo, HttpServletResponse response) ;

    void exportAddDataByMonthAndVersionV2(ExportDataByMonthAndVersionVo exportDataByMonthAndVersionVo, HttpServletResponse response) ;

}
